package models

type Tags struct {
	TagID   uint64    `gorm:"column:tag_id;primary_key;auto_increment" json:"tag_id"`
	Name    string    `gorm:"column:name;not null" json:"name" `
	Recipes []Recipes `gorm:"many2many:recipes_flag_map"`
}

// 新增标签
func (tag *Tags) Create() error {
	return DB.Self.Create(&tag).Error
}

// 删除标签
func (tag *Tags) Delete() error {
	return DB.Self.Delete(&tag).Error
}

// 修改标签
func (tag *Tags) Update() error {
	return DB.Self.Model(&tag).Update(&tag).Error
}

// 查询，提供Id查询
func GetTagsById(id uint64) (*Tags, error) {
	tag := &Tags{}
	r := DB.Self.Preload("Recipes").First(tag, id)
	return tag, r.Error
}

// 查询所有
func GetTag() ([]*Tags, error) {
	tags := make([]*Tags, 0)
	err := DB.Self.Preload("Recipes").Find(&tags).Error
	return tags, err
}

// 模糊查询
func GetTagByKey(key string) ([]*Tags, error) {
	userList := make([]*Tags, 0)
	err := DB.Self.Where("name like ? ", "%"+key+"%").Find(&userList).Error
	return userList, err
}
